import multiprocessing
import time


def worker(num):
    print(f"start worker: {num}")
    time.sleep(3)  # 暂停2秒
    print(f"end worker:  {num}")


if __name__ == "__main__":
    pool = multiprocessing.Pool(processes=3)  # 创建一个包含3个进程的进程池
    for i in range(5):  # 循环5次
        msg = f"task-{i}"  # 创建一个消息
        pool.apply_async(
            worker, (msg,)
        )  # 将worker函数和消息传入apply_async函数，异步执行worker函数
    pool.close()  # 关闭进程池，不再接受新的进程
    pool.join()  # 等待进程池中的进程执行完毕
